﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Csla;
namespace EntGuayasSLA.BL.Listas.Criterias
{
    [Serializable]
    public class UsuarioSingleCriteria : BusinessBase<UsuarioSingleCriteria>
    {
        #region Business Methods
       
        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }

        public static readonly PropertyInfo<string> CodigoRolProperty = RegisterProperty<string>(c => c.CodigoRol);
        public string CodigoRol
        {
            get { return GetProperty(CodigoRolProperty); }
            set { SetProperty(CodigoRolProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static UsuarioSingleCriteria NewUsuarioCriteria()
        {
            return DataPortal.Create<UsuarioSingleCriteria>();
        }

        private UsuarioSingleCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }
    [Serializable]
    public class UsuarioCriteria : BusinessBase<UsuarioCriteria>
    {
        #region Business Methods

        public static readonly PropertyInfo<string> NombreProperty = RegisterProperty<string>(c => c.Nombre);
        public string Nombre
        {
            get { return GetProperty(NombreProperty); }
            set { SetProperty(NombreProperty, value); }
        }

        public static readonly PropertyInfo<string> ApellidoProperty = RegisterProperty<string>(c => c.Apellido);
        public string Apellido
        {
            get { return GetProperty(ApellidoProperty); }
            set { SetProperty(ApellidoProperty, value); }
        }

        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }

        public static readonly PropertyInfo<string> RolProperty = RegisterProperty<string>(c => c.Rol);
        public string Rol
        {
            get { return GetProperty(RolProperty); }
            set { SetProperty(RolProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static UsuarioCriteria NewUsuarioCriteria()
        {
            return DataPortal.Create<UsuarioCriteria>();
        }

        private UsuarioCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }

    [Serializable]
    public class UsuarioBuscadorCriteria : BusinessBase<UsuarioBuscadorCriteria>
    {
        #region Business Methods
        public static readonly PropertyInfo<string> IdentificacionProperty = RegisterProperty<string>(c => c.Identificacion);
        public string Identificacion
        {
            get { return GetProperty(IdentificacionProperty); }
            set { SetProperty(IdentificacionProperty, value); }
        }

        public static readonly PropertyInfo<string> NombreProperty = RegisterProperty<string>(c => c.Nombre);
        public string Nombre
        {
            get { return GetProperty(NombreProperty); }
            set { SetProperty(NombreProperty, value); }
        }

        public static readonly PropertyInfo<string> ApellidoProperty = RegisterProperty<string>(c => c.Apellido);
        public string Apellido
        {
            get { return GetProperty(ApellidoProperty); }
            set { SetProperty(ApellidoProperty, value); }
        }

        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }

        public static readonly PropertyInfo<string> RolCodeProperty = RegisterProperty<string>(c => c.RolCode);
        public string RolCode
        {
            get { return GetProperty(RolCodeProperty); }
            set { SetProperty(RolCodeProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static UsuarioBuscadorCriteria NewUsuarioBuscadorCriteria()
        {
            return DataPortal.Create<UsuarioBuscadorCriteria>();
        }

        private UsuarioBuscadorCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }

    [Serializable]
    public class FuncionalidadCriteria : BusinessBase<FuncionalidadCriteria>
    {
        #region Business Methods



        public static readonly PropertyInfo<string> UsuarioIdProperty = RegisterProperty<string>(c => c.UsuarioId);
        public string UsuarioId
        {
            get { return GetProperty(UsuarioIdProperty); }
            set { SetProperty(UsuarioIdProperty, value); }
        }

        public static readonly PropertyInfo<string> RolIdProperty = RegisterProperty<string>(c => c.RolId);
        public string RolId
        {
            get { return GetProperty(RolIdProperty); }
            set { SetProperty(RolIdProperty, value); }
        }
        #endregion

        #region Factory Methods

        public static FuncionalidadCriteria NewUsuarioCriteria()
        {
            return DataPortal.Create<FuncionalidadCriteria>();
        }

        private FuncionalidadCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }

}
